iT邦幫忙

DAY 30
4

邁向 RHCE 之路系列 第 30

邁向 RHCE 之路 (Day30) - MySQL 資料庫伺服器

  • 分享至 

  • xImage
  •  

MySQL 由於效能好、低成本、穩定性夠,對於中小企業來說是最好的選擇,目前分為可免費使用的 社群版本(Community Edition),以及需要授權費用的 標準版(Standard Edition)、企業版(Enterprise Edition)、電信營運版(Cluster Carrier Grade Edition),關於版本功能詳細資訊可參考 MySQL 授權版本功能比較。以下為 MySQL 檔案分享伺服器實作環境:

* OS: CentOS 6.0 (32 bit)
* MySQL 套件資訊: mysql-server-5.1.52-1.el6_0.1.i686
* MySQL 設定檔: /etc/my.cnf
* IPTables 防火牆: TCP 協定 Port 3306
* SELinux 權限: mysqld_db_t

----- 安裝 MySQL 檔案分享套件 -----
請使用 yum 指令搭配 MySQL 套件名稱 mysql-server 即可進行套件安裝。

#yum -y install mysql-server   //安裝 MySQL 套件
#rpm -qa mysql-server          //查詢 MySQL 套件版本
 mysql-server-5.1.52-1.el6_0.1.i686
#rpm -ql mysql                 //查詢 MySQL 設定檔路徑
 /usr/bin/msql2mysql
 ...略...

----- 設定 IPTables 防火牆規則 -----
MySQL 資料庫服務屆時啟動時會 TCP 協定 Port 3306,因此必須修改 IPTables 防火牆規則以便等一下進行測試,請修改 IPTables 防火牆規則設定檔**「/etc/sysconfig/iptables」**加上允許相關 Port 號的規則,修改防火牆規則後請使用指令「service iptables restart」來重新啟動防火牆服務,以便防火牆規則套用生效,並且使用「service iptables status」指令來確定目前防火牆規則是否有允許相關 Port 號。

#vi /etc/sysconfig/iptables          //修改防火牆規則(加入如下六行)
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
#service iptables restart            //重新啟動防火牆服務
#service iptables status | grep 3306 //查看防火牆規則是否套用生效
 5  ACCEPT  tcp  --  0.0.0.0/0   0.0.0.0/0   state NEW tcp dpt:3306
#chkconfig mysqld on                 //開機自動啟動 MySQL 服務

----- 修改 MySQL 設定檔 -----
接著修改 MySQL 設定檔**「/etc/my.cnf」,主要為修改資料庫預設存放路徑「datadir」的設定,將資料庫存放路徑由預設的「/var/lib/mysql」修改至「/home/db」**掛載點,下列僅列出設定檔需要修改的地方其預設值及修改後的內容:

#vi /etc/my.cnf           //修改 MySQL 設定檔
 datadir=/var/lib/mysql   //預設值,資料庫預設存放路徑
 datadir=/home/db         //修改後
#mkdir /home/db           //建立資料夾

----- 修改 SELinux 設定值 -----
修改 SELinux 安全機制的設定值,因為將 MySQL 資料庫預設存放路徑由 「/var/lib/mysql」 修改至 「/home/db」,因此新的資料夾其 SELinux 安全機制的權限勢必與原來的資料夾不同,若不進行修改的話屆時啟動 MySQL 服務時便可能會因為 SELinux 權限問題造成無法啟動 MySQL 服務的狀況。

#ls -dZ /var/lib/mysql /home/db
 drwxr-xr-x. root  root  unconfined_u:object_r:home_root_t:s0 /home/db
 drwxr-xr-x. mysql mysql system_u:object_r:mysqld_db_t:s0 /var/lib/mysql

接著透過「semanage fcontext -a -t」指令配合 SELinux 權限**「mysqld_db_t」**,指定「/home/db」資料夾設定此權限為「SELinux預設權限」,之後使用「restorecon -Rv」指令把資料夾還原至剛才設定的 SELinux 預設權限,若執行 semanage 指令發現系統中沒有此一指令請安裝 policycoreutils-python 套件即可(yum -y install policycoreutils-python)。

#semanage fcontext -a -t mysqld_db_t "/home/db(/.*)?"  //設定 SELinux 預設權限
#restorecon -Rv /home/db           //還原 SELinux 權限   
#chown mysql:mysql /home/db        //設定資料夾權限
#ls -dZ /var/lib/mysql /home/db    //查看資料夾 SELinux 權限
 drwxr-xr-x. mysql mysql system_u:object_r:mysqld_db_t:s0 /home/db
 drwxr-xr-x. mysql mysql system_u:object_r:mysqld_db_t:s0 /var/lib/mysql

----- 啟動 MySQL 服務 -----
完成修改 SELinux 安全機制權限設定後,我們可以放心啟動 MySQL 相關服務,請使用指令「service mysqld start」來啟動 MySQL 服務,並且於服務啟動後使用「netstat」指令來查看系統是否開啟了相關 Port 號,以及使用「ps」指令來查看相關執行序是否運作。

#service mysqld start        //啟動 MySQL 服務
 Initializing MySQL database:  Installing MySQL system tables...
 ...略...
 Starting mysqld:           [  OK  ]
#netstat -tunpl |grep :3306  //查看是否開啟 Port 3306
 tcp  0  0 0.0.0.0:3306    0.0.0.0:*   LISTEN   6298/mysqld
#ps aux |grep mysqld
 root  6209  0.0  0.1  5080  1356 pts/0   S  15:20  0:00 /bin/sh /usr/bin/mysqld_safe
 ...略...

----- 設定 MySQL 管理密碼 -----
MySQL 資料庫管理者預設帳號名稱為**「root」(請別跟 CentOS 作業系統的超級管理者 root 帳號搞混),並且可以透過「mysqladmin」指令來設定其密碼,下列操作為將 MySQL 資料庫管理者密碼設定為「123456」**,若日後您需要修改管理密碼,則在指令「password」前面加上「-p」參數即可進行變更。

#mysqladmin -u root password '123456'  //設定 MySQL 管理密碼
#mysql -u root -p                      //登入資料庫
 Enter password:                       //輸入管理密碼
 ...略...
 mysql> show databases;                //查看資料庫清單
 +--------------------+
 | Database           |
 +--------------------+
 | information_schema |
 | mysql              |
 | test               |
 +--------------------+
 3 rows in set (0.00 sec)
 mysql> exit                           //離開資料庫
 Byet

(上一篇)邁向 RHCE 之路 (Day29) - Samba 檔案分享伺服器
邁向 RHCE 之路系列文章連結


上一篇
邁向 RHCE 之路 (Day29) - Samba 檔案分享伺服器
系列文
邁向 RHCE 之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
weithenn
iT邦新手 4 級 ‧ 2011-11-05 13:11:17

很榮幸第一次參加鐵人賽(也完成了!!),雖然在這三十天分享文章中在文字限制範圍內盡量分享心得,不過事實上還有許多項目及內容無法一一說明,最後仍然希望這些文章能對於 RHEL/CentOS 作業系統有興趣的朋友一些參考價值。

謝謝

0
chiounan
iT邦研究生 1 級 ‧ 2011-11-05 21:23:48

感謝您的分享,我從您這一系列分享中收穫很多。謝謝

0
wilson1966
iT邦研究生 1 級 ‧ 2011-11-06 08:48:59

出了社會才知道,為什麼老板和資訊主管的頭腦和我們想的不一樣,不用錢的軟體不用,反而花大錢去買,因一個人要做2人工作,又要按時下班,這時其他的都不重要了。

我要留言

立即登入留言